home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / artwork.h < prev    next >
C/C++ Source or Header  |  2000-05-21  |  4KB  |  93 lines

  1. /*********************************************************************
  2.  
  3.   artwork.h
  4.  
  5.   Generic backdrop/overlay functions.
  6.  
  7.   Be sure to include driver.h before including this file.
  8.  
  9.   Created by Mike Balfour - 10/01/1998
  10. *********************************************************************/
  11.  
  12. #ifndef ARTWORK_H
  13.  
  14. #define ARTWORK_H 1
  15.  
  16. /*********************************************************************
  17.   artwork
  18.  
  19.   This structure is a generic structure used to hold both backdrops
  20.   and overlays.
  21. *********************************************************************/
  22.  
  23. struct artwork
  24. {
  25.     /* Publically accessible */
  26.     struct osd_bitmap *artwork;
  27.     struct osd_bitmap *artwork1;
  28.     struct osd_bitmap *alpha;
  29.     struct osd_bitmap *orig_artwork;   /* needed for palette recalcs */
  30.     struct osd_bitmap *vector_bitmap;  /* needed to buffer the vector image in vg with overlays */
  31.     UINT8 *orig_palette;               /* needed for restoring the colors after special effects? */
  32.     int num_pens_used;
  33.     UINT8 *transparency;
  34.     int num_pens_trans;
  35.     int start_pen;
  36.     UINT8 *brightness;                 /* brightness of each palette entry */
  37.     UINT64 *rgb;
  38.     UINT8 *pTable;                     /* Conversion table usually used for mixing colors */
  39. };
  40.  
  41.  
  42. struct artwork_element
  43. {
  44.     struct rectangle box;
  45.     UINT8 red,green,blue;
  46.     UINT16 alpha;   /* 0x00-0xff or OVERLAY_DEFAULT_OPACITY */
  47. };
  48.  
  49. #define OVERLAY_DEFAULT_OPACITY         0xffff
  50.  
  51. #ifndef MIN
  52. #define MIN(x,y) ((x)<(y)?(x):(y))
  53. #endif
  54. #ifndef MAX
  55. #define MAX(x,y) ((x)>(y)?(x):(y))
  56. #endif
  57.  
  58. extern struct artwork *artwork_backdrop;
  59. extern struct artwork *artwork_overlay;
  60. extern struct osd_bitmap *overlay_real_scrbitmap;
  61.  
  62. /*********************************************************************
  63.   functions that apply to backdrops AND overlays
  64. *********************************************************************/
  65. void overlay_load(const char *filename, unsigned int start_pen, unsigned int max_pens);
  66. void overlay_create(const struct artwork_element *ae, unsigned int start_pen, unsigned int max_pens);
  67. void backdrop_load(const char *filename, unsigned int start_pen, unsigned int max_pens);
  68. void artwork_load(struct artwork **a,const char *filename, unsigned int start_pen, unsigned int max_pens);
  69. void artwork_load_size(struct artwork **a,const char *filename, unsigned int start_pen, unsigned int max_pens, int width, int height);
  70. void artwork_elements_scale(struct artwork_element *ae, int width, int height);
  71. void artwork_free(struct artwork **a);
  72.  
  73. /*********************************************************************
  74.   functions that are backdrop-specific
  75. *********************************************************************/
  76. void backdrop_refresh(struct artwork *a);
  77. void backdrop_refresh_tables (struct artwork *a);
  78. void backdrop_set_palette(struct artwork *a, unsigned char *palette);
  79. int backdrop_black_recalc(void);
  80. void draw_backdrop(struct osd_bitmap *dest,const struct osd_bitmap *src,int sx,int sy,
  81.            const struct rectangle *clip);
  82. void drawgfx_backdrop(struct osd_bitmap *dest,const struct GfxElement *gfx,
  83.               unsigned int code,unsigned int color,int flipx,int flipy,int sx,int sy,
  84.               const struct rectangle *clip,const struct osd_bitmap *back);
  85.  
  86. /*********************************************************************
  87.   functions that are overlay-specific
  88. *********************************************************************/
  89. int overlay_set_palette (unsigned char *palette, int num_shades);
  90.  
  91. #endif
  92.  
  93.